package com.car.loan.project.xr.util.repayment.impl;

import com.car.loan.project.xr.util.repayment.FinancingAmountInterface;
import java.math.BigDecimal;
import java.math.MathContext;
import org.springframework.stereotype.Service;

/**
 * 分期金额*（1+（执行费率-银行基础费率）） 个位 向上
 *
 * @author huangding
 * @date 2020/3/21 20:08
 */
@Service("financingAmountA1")
public class FinancingAmountA1 implements FinancingAmountInterface {

    @Override
    public Integer getFinancingAmount(BigDecimal installmentAmount, BigDecimal rate,
        BigDecimal bankRate) {
        //分期金额*（1+（执行费率—银行基础费率））注意百分比，农业银行的业务，保留到百位，如个位和十位在30及以下的，舍去，30以上的进1（如56789.99，56730.01进为56800，56730，56729.99进为56700）
        rate = rate.divide(new BigDecimal(100), MathContext.DECIMAL128);
        bankRate = bankRate.divide(new BigDecimal(100), MathContext.DECIMAL128);
        BigDecimal add = BigDecimal.ONE.add(rate.subtract(bankRate, MathContext.DECIMAL128));
        BigDecimal multiply = installmentAmount.multiply(add, MathContext.DECIMAL128)
            .setScale(2, BigDecimal.ROUND_HALF_UP);
        return multiply.setScale(0, BigDecimal.ROUND_CEILING).intValue();
    }
}
